package kc.spark.pixels.android.ui; import kc.spark.pixels.android.cloud.ApiFacade; import kc.spark.pixels.android.storage.Prefs; import kc.spark.pixels.android.ui.util.Ui; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.app.Activity; import android.app.Fragment; import android.app.ListFragment; import android.os.Bundle; import android.support.v4.content.LocalBroadcastManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; public abstract class BaseFragment extends Fragment { public abstract int getContentViewLayoutId(); protected Prefs prefs; protected ApiFacade api; protected LocalBroadcastManager broadcastMgr; @Override public void onAttach(Activity activity) { super.onAttach(activity); prefs = Prefs.getInstance(); api = ApiFacade.getInstance(activity); broadcastMgr = LocalBroadcastManager.getInstance(activity); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(getContentViewLayoutId(), container, false); } /** * Shows & hides the progress spinner and hides the login form. */ protected void showProgress(int viewId, final boolean show) { // Fade-in the progress spinner. int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime); final View progressView = Ui.findView(this, viewId); progressView.setVisibility(View.VISIBLE); progressView.animate() .setDuration(shortAnimTime) .alpha(show ? 1 : 0) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { progressView.setVisibility(show ? View.VISIBLE : View.GONE); } }); } }